home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Games / MAME / src / sound / tms5220.txt < prev    next >
Text File  |  1998-07-12  |  3KB  |  86 lines

  1. *****************************
  2.  
  3.     TI TMS5220 Emulator
  4.     (c) Frank Palazzolo
  5.  
  6. *****************************
  7.  
  8. The TI TMS5220 Speech chip uses Linear-Predictive decoding scheme to produce
  9. speech from very compact data.  This scheme is very similar to the U.S.
  10. Federal Standard LPC-10e coding system, which was developed soon after
  11. this chip.
  12.  
  13. It is virtually identical to the chip used in the landmark "Speak 'N Spell"
  14. toy produced in the '70s.
  15.  
  16. Acknowledgements:
  17. -----------------
  18.  
  19. I would like to thank Larry Brantingham, the original designer of the chip,
  20. for his technical help.
  21.  
  22. I would also like to thank Neill Cortlett, who first showed that this chip
  23. could be emulated in real-time in his Multi-Gauntlet Emulator.
  24.  
  25. Theory of operation:
  26. --------------------
  27.  
  28. The TI speech chip contains a 128-bit parallel-in, serial-out FIFO, a
  29. 10-pole digital lattice filter which models the vocal tract, and a D/A
  30. converter.  It was originally design to operate either with a microcomputer
  31. interface, or with a serial speech ROM.  The Speech ROM functionality is
  32. not emulated as no arcade games require it.
  33.  
  34. The input data is writen a byte at a time into the chip, and it is
  35. decoded bitwise into variable length frames.
  36.  
  37. Possible Frame Types are as follows:
  38.  
  39.           Energy RF Pitch  K1    K2    K3   K4   K5   K6   K7   K8  K9  K10
  40.           -----------------------------------------------------------------
  41.  
  42. Silent    0000
  43. Stop      1111
  44. Repeat    XXXX   1  XXXXXX
  45. Unvoiced  XXXX   0  000000 XXXXX XXXXX XXXX XXXX
  46. Voiced    XXXX   0  XXXXXX XXXXX XXXXX XXXX XXXX XXXX XXXX XXXX XXX XXX XXX
  47.  
  48. Stop Frame:     Stops the current speech
  49. Repeat Frame:   Uses the digital filter coefficients from the previous frame,
  50.                 with new Energy and Pitch values
  51. Unvoiced Frame: Uses Noise generator to feed 4 pole digital filter
  52.                 (All other coefficients are set to zero)
  53. Voiced Frame:   Uses Pulse Generator to feed 10 pole digital filter
  54.  
  55. All parameters (Energy, Pitch, K1-K10) are indexes into a lookup table for
  56. actual values (see TMS5220R.c)
  57.  
  58. K1-K10 are reflection coefficients for the lattice filter.
  59.  
  60. Each frame is used to generate 200 samples, and 8 times during each frame,
  61. (every 25 samples), these values are linearly interpolated to smooth out
  62. frame transitions.
  63.  
  64. The Noise generator is based on a shift-register type random-bit generator.
  65. The Pulse generator is based on a lookup table.
  66.  
  67. API:
  68. ----
  69.  
  70. TBD
  71.  
  72. More:
  73. -----
  74.  
  75. For further technical info, the data sheet is floating around on the net.
  76. (I believe the name is TMS.PDF)  If you can't find a copy, email me and
  77. I'll point you towards it.  Feel free to contact me if you have a question.
  78.  
  79. Frank Palazzolo
  80.  
  81. palazzol@home.com
  82.  
  83.  
  84.  
  85.  
  86.